package org.ki4.kipastelsys

class ItemPedido {
	
	int quantidade = 0
	Produto produto
	Pedido pedido
	BigDecimal total = new BigDecimal(0).setScale(2)
    
    def beforeInsert = {
        this.total = produto.preco.multiply(this.quantidade)
    }
    
    def beforeUpdate = {
        this.total = produto.preco.multiply(this.quantidade)
    }
	
	private BigDecimal dTotalOriginal = new BigDecimal(0).setScale(2)
   	def afterLoad = {
		dTotalOriginal = this.total
	}
	
	def afterUpdate = {
		pedido.total = (pedido.total.subtract(this.dTotalOriginal)).add(this.total)
		pedido.save()
	}
	
	def afterInsert = {
		pedido.total = pedido.total.add(this.total)
		pedido.save()
	}
	
	def afterDelete = {
		pedido.total = pedido.total.subtract(this.total)
		pedido.save()
	}
	
	static constraints = {
	}
	
	String toString(){
		return "${quantidade} x ${produto.getNome()}"
	}
}
